<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <h1>01.html</h1>

  <img
    src=""
    alt="">
  <script>

    //   A    instanceof  B     A是否在B的原型上  
    //  []  ====>  Array.prototype   -====>   Object.protoype 
    //  构造函数的原型对象都是对象  ===》 对象 都是 new  Object  
    console.log([] instanceof Array)
    console.log([] instanceof Object)

    console.log(Array.isArray([]))


    console.log(Object.prototype.toString.call())


    //  ajax  的参数格式 
    //  post 和 get
    //  post的参数 原生  就是 在xhr.send( a=b&c=d )
    //  POST 的参数格式 我们称为请求体    body


    // GET  的参数     原生里面   xhr.open('get', 'url?a=b&c=d')
    // ?a=b&c=d  我们称为查询字符串      Query


    //  文件上传 接口文档 会告诉我们  这个请求参数  FormData 格式 
    // let fd = new FormData

    // fd.append('接口文档要求的参数', `type=file的这个DOM对象的[0]`)

    // xhr.send(fd)


    // 请求参数为header  99%的情况下都是携带 token 



    //  application/x-www-form-urlencoded   字符串

    //  application/json json格式的数据  




    let str = 'aaaaabbbbcccccddd'

    let obj = {
      // a: 8,
      // b: 6

      // f: 100
    }

    let test = 'f'

    console.log(obj[test]) // 100
    console.log(obj.test)  // 100  undefined

    // 思路 就是把 字符串的名字 当做对象的键  
    // 字符串出现的次数当做 对象的值 


    for (let i = 0; i < str.length; i++) {
      // 判断一下 字符串是否是对象的属性 
      //  如果不是对象的属性 给对象添加这个属性 并且赋值初始值为1 
      //  如果是  直接把属性 值  + 1  
      // 对象的属性 只有在【】 才能表示的是一个变量   如果是点的形式 点后面永远是字符串
      if (obj[str[i]]) {

        obj[str[i]]++

      } else {

        obj[str[i]] = 1
      }

    }

    console.log(obj)  //  8 




    let xhr = new XMLHttpRequest

    xhr.open('GET', 'http://127.0.0.1:3000/test?id=123')

    xhr.send()

    xhr.onload = function () {
      console.log(xhr.responseText)
    }



  </script>
</body>

</html>